// !如果参数为指针，则必须指定地址空间类型；如果是普通类型数据，则不需要指定类型
__kernel void fill_random(__global int* output, 
    unsigned int seed, 
    int start, 
    int end)
{
    int id = get_global_id(0);

    // 线性同余随机数生成器
    unsigned int state = seed + id * 123456789;
    state = (state * 1103515245 + 12345) & 0x7fffffff;

    // 生成0~1之间的随机数
    float value = (float)state / 2147483647.0f;

    output[id] = start + (int)(value * (end - start));
}